package controles;

import java.util.ArrayList;
import juego.Escenario;
import objetos.ObjetoNoControlado;
import objetos.aeronaves.*;
import objetos.aeronaves.enemigos.AvionGuia;
import objetos.powerUps.PowerUp;
import objetos.proyectiles.Proyectil;

/*
 * Control que recorre todas las listas de objetos no controlados, haciendo que vivan.
 */
public class ControlVivir implements Control {

	public void ejecutar() {
		Escenario escenario = Escenario.getInstance();
		ArrayList<Enemigo> enemigos = escenario.getEnemigos();
		int largoEnemigos = enemigos.size();
		ArrayList<Civil> civiles = escenario.getCiviles();
		int largoCiviles = civiles.size();
		ArrayList<Proyectil> proyectilesAlgo42 = escenario
				.getProyectilesDelAlgo42();
		int largoProyectilesAlgo42 = proyectilesAlgo42.size();
		ArrayList<Proyectil> proyectilesEnemigos = escenario
				.getProyectilesEnemigos();
		int largoProyectilesEnemigos = proyectilesEnemigos.size();
		ArrayList<PowerUp> powerUps = escenario.getPowerUps();
		int largoPowerUps = powerUps.size();
		ObjetoNoControlado objeto;

		for (int i = 0; i < largoEnemigos; i++) {
			objeto = enemigos.get(i);
			objeto.vivir();
		}
		for (int i = 0; i < largoCiviles; i++) {
			objeto = civiles.get(i);
			objeto.vivir();
		}
		for (int i = 0; i < largoProyectilesAlgo42; i++) {
			objeto = proyectilesAlgo42.get(i);
			objeto.vivir();
		}
		for (int i = 0; i < largoProyectilesEnemigos; i++) {
			objeto = proyectilesEnemigos.get(i);
			objeto.vivir();
		}
		for (int i = 0; i < largoPowerUps; i++) {
			objeto = powerUps.get(i);
			objeto.vivir();
		}
		AvionGuia guia = Escenario.getInstance().getAvionGuia();
		if (guia != null) {
			guia.vivir();
		}
	}

}
